<template>
  <div class="app-container">
    <el-card style="border-radius: 10px">
      <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="120px">
        <el-form-item label="发货通知单编号" prop="deliverCode">
          <el-input
            v-model="queryParams.deliverCode"
            placeholder="请输入发货通知单编号"
            clearable
            @keyup.enter.native="handleQuery"
          />
        </el-form-item>
        <el-form-item label="销售订单编号" prop="soCode">
          <el-input
            v-model="queryParams.soCode"
            placeholder="请输入销售订单编号"
            clearable
            @keyup.enter.native="handleQuery"
          />
        </el-form-item>
        <el-form-item label="客户名称" prop="clientName">
          <el-input
            v-model="queryParams.clientName"
            placeholder="请输入客户名称"
            clearable
            @keyup.enter.native="handleQuery"
          />
        </el-form-item>
        <el-form-item label="单据状态" prop="status">
          <el-select v-model="queryParams.status" placeholder="请选择单据状态" clearable>
            <el-option
              v-for="dict in dict.type.order_type_status"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="出库日期" prop="params">
          <el-date-picker clearable
                          v-model="queryParams.params"
                          type="daterange"
                          range-separator="至"
                          start-placeholder="开始日期"
                          end-placeholder="结束日期"
                          value-format="yyyy-MM-dd"
                          placeholder="请选择出库日期">
          </el-date-picker>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
          <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
        </el-form-item>
      </el-form>
    </el-card>
    <div style="height: 15px"></div>
    <el-card style="border-radius: 10px">
      <el-row :gutter="10" class="mb8">
        <el-col :span="1.5">
          <el-button
            type="primary"
            icon="el-icon-plus"
            size="mini"
            @click="handleAdd"
            v-hasPermi="['mes:xs:deliver:add']"
          >新增</el-button>
        </el-col>
        <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
      </el-row>

      <el-table v-loading="loading" :data="productsalseList" @selection-change="handleSelectionChange" border>
        <el-table-column type="selection" width="55" align="center" />
        <el-table-column label="发货通知单编号" width="180px" align="center" prop="deliverCode" >
          <template slot-scope="scope">
            <el-button
              type="text"
              @click="handleView(scope.row)"
              v-hasPermi="['mes:xs:deliver:query']"
            >{{scope.row.deliverCode}}</el-button>
          </template>
        </el-table-column>
        <el-table-column label="销售订单编号" width="180px" align="center" prop="soCode" />
        <el-table-column label="客户编码" align="center" prop="clientCode" />
        <el-table-column label="客户名称" align="center" prop="clientName" />
        <el-table-column label="出库日期" align="center" prop="salseDate" width="180">
          <template slot-scope="scope">
            <span>{{ parseTime(scope.row.salseDate, '{y}-{m}-{d}') }}</span>
          </template>
        </el-table-column>
        <el-table-column label="单据状态" align="center" prop="status">
          <template slot-scope="scope">
            <dict-tag :options="dict.type.order_type_status" :value="scope.row.status"/>
          </template>
        </el-table-column>
        <el-table-column label="操作" width="180px" align="center">
          <template slot-scope="scope">

              <el-button
                size="mini"
                type= "text"
                icon="el-icon-check"
                @click="handleExecute(scope.row)"
                v-hasPermi="['mes:xs:deliver:execute']"
                v-if="scope.row.status == 'caogao'"
              >确认</el-button>

              <el-button
                size="mini"
                type= "text"
                icon="el-icon-delete"
                @click="handleDelete(scope.row)"
                v-hasPermi="['mes:xs:deliver:remove']"
                v-if="scope.row.status == 'caogao'"
              >删除</el-button>

          </template>
        </el-table-column>
      </el-table>

      <pagination
        v-show="total>0"
        :total="total"
        :page.sync="queryParams.pageNum"
        :limit.sync="queryParams.pageSize"
        @pagination="getList"
      />
    </el-card>
    <!-- 添加或修改发货通知单对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="1200px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
        <el-row>
          <el-col :span="12">
            <el-form-item label="通知单编号" prop="deliverCode">
              <el-input
                v-model="form.deliverCode"
                placeholder="请输入通知单编号"
                :readonly="optType !== 'add'"
              />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="发货日期" prop="salseDate">
              <el-date-picker
                clearable
                v-model="form.salseDate"
                type="date"
                value-format="yyyy-MM-dd"
                placeholder="请选择出库日期"
                :disabled="optType == 'view'"
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="24">
            <el-form-item label="销售单编号" prop="soCode">
              <el-input v-model="form.soCode" placeholder="请选择销售订单编号" readonly >
                <el-button
                  slot="append"
                  @click="handleSelectOrder"
                  icon="el-icon-search"
                  v-if="optType === 'add'">
                </el-button>
              </el-input>
              <MultiOrderSelect
                ref="orderSelect"
                :status="orderQuery"
                @onSelected="onOrderSelected"
              >
              </MultiOrderSelect>
            </el-form-item>
          </el-col>

        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="客户编码" prop="clientCode">
              <el-input v-model="form.clientCode" readonly />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="客户名称" prop="clientName">
              <el-input v-model="form.clientName" readonly />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="单据状态" prop="status">
              <el-select v-model="form.status" disabled placeholder="请选择单据状态">
                <el-option
                  v-for="dict in dict.type.order_type_status"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="24">
            <el-form-item label="备注" prop="remark">
              <el-input
                v-model="form.remark"
                type="textarea"
                placeholder="请输入内容"
                :readonly="optType === 'view'"
              />
            </el-form-item>
          </el-col>
        </el-row>

        <el-row>
          <el-col :span="24">
            <el-form-item label="附件" prop="url">
              <FileUpload
                :limit="100"
                :fileSize="500"
                :fileType="fileType"
                :value="fileList"
                :optType="optType"
                :isShowTip="false"
                @onUploaded="handleUploaded"
                @onRemoved="handleRemoved"
                :disabled="optType === 'view'"
              >
              </FileUpload>
            </el-form-item>
          </el-col>
        </el-row>

        <el-row>
          <el-col :span="24">
            <el-divider content-position="center">订单信息</el-divider>
            <el-table :data="this.form.productLineList" border>
              <el-table-column label="所属订单" align="center" prop="soNumber" />
              <el-table-column label="产品编码" align="center" prop="itemCode" />
              <el-table-column label="产品名称" align="center" prop="itemName" />
              <el-table-column label="规格" align="center" prop="specification" />
              <el-table-column label="单位" align="center" prop="unitOfMeasure" />
              <el-table-column
                v-for="col in columnsConfig"
                :key="col.prop"
                :label="col.label"
                :prop="col.prop"
                :width="col.width"
                :align="col.align"
                v-if="col.show">
              </el-table-column>
              <el-table-column label="订单数量" align="center" prop="quantity" fixed="right">
                <template slot-scope="scope">
                  <el-tag type="danger" v-if="scope.row.quantity">{{ scope.row.quantity }}</el-tag>
                  <span v-else>{{ scope.row.quantity }}</span>
                </template>
              </el-table-column>
              <el-table-column label="单价" align="center" prop="price" width="120" fixed="right">
                <template slot-scope="scope">
                  <el-tag type="success" v-if="scope.row.unitPrice">{{ scope.row.unitPrice }}</el-tag>
                  <span v-else>{{ scope.row.unitPrice }}</span>
                </template>
              </el-table-column>
              <el-table-column label="通知发货数量" align="center" prop="quantity" width="120" fixed="right">
                <template slot-scope="scope">
                  <el-tag type="info" v-if="scope.row.deliverNum">{{ scope.row.deliverNum }}</el-tag>
                  <span v-else>{{ scope.row.deliverNum }}</span>
                </template>
              </el-table-column>
              <el-table-column label="操作" align="center" fixed="right">
                <template slot-scope="scope">
                  <el-button
                    type="text"
                    @click="selectRow(scope.row)"
                    v-if="scope.row.quantity !== scope.row.deliverNum"
                  >选择</el-button>
                </template>
              </el-table-column>
            </el-table>
          </el-col>
        </el-row>
        <div style="height: 15px"></div>
        <el-row>
          <el-col :span="24">
            <el-divider content-position="center">发货通知单详情</el-divider>
            <el-table :data="this.form.deliveryDetails" border>
              <el-table-column label="所属订单" align="center" prop="soNumber" />
              <el-table-column label="产品编码" align="center" prop="itemCode" />
              <el-table-column label="产品名称" align="center" prop="itemName" />
              <el-table-column label="规格" align="center" prop="specification" />
              <el-table-column label="单位" align="center" prop="unitOfMeasure" />
              <el-table-column
                v-for="col in columnsConfig"
                :key="col.prop"
                :label="col.label"
                :prop="col.prop"
                :width="col.width"
                :align="col.align"
                v-if="col.show">
              </el-table-column>
              <el-table-column label="本次发货数量" align="center" width="180" fixed="right">
                <template slot-scope="scope">
                  <el-input-number
                    v-model="scope.row.deliveredQuantity"
                    :max="(scope.row.quantity - scope.row.deliverNum)"
                    :min="0"
                    size="small"
                    style="width: 140px"
                  ></el-input-number>
                </template>
              </el-table-column>
              <el-table-column label="单价" align="center" width="120" fixed="right">
                <template slot-scope="scope">
                  <el-tag type="success" v-if="scope.row.unitPrice">{{ scope.row.unitPrice }}</el-tag>
                  <span v-else>{{ scope.row.unitPrice }}</span>
                </template>
              </el-table-column>
              <el-table-column label="是否质检" align="center" width="180" fixed="right">
                <template slot-scope="scope">
                  <el-switch
                    :value="scope.row.oqcCheck"
                    @change="val => handleOqcChange(val, scope.row.itemCode)"
                    active-value="Y"
                    inactive-value="N"
                    active-color="#13ce66"
                  ></el-switch>
                </template>
              </el-table-column>
              <el-table-column label="操作" align="center" fixed="right">
                <template slot-scope="scope">
                  <el-button type="text" @click="deleteRow(scope.$index, scope.row)">删除</el-button>
                </template>
              </el-table-column>
            </el-table>
          </el-col>
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button
          type="primary"
          @click="submitForm"
          v-if="form.status =='caogao' && optType !='view' && !isConfirm ">保存</el-button>
        <el-button
          type="primary"
          @click="confirm"
          v-if="form.status === 'caogao' && isConfirm">提交出库</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>

    <!-- 查看详情弹出框 -->
    <el-dialog :title="titleView" :visible.sync="openView" width="1200px" append-to-body>
      <el-descriptions :column="2" border :label-style="{width: '150px'}" :content-style="{width: '300px'}">
        <el-descriptions-item label="通知单编号">{{ form.deliverCode }}</el-descriptions-item>
        <el-descriptions-item label="出库日期">{{ form.salseDate }}</el-descriptions-item>
        <el-descriptions-item label="销售单编号">{{ form.soCode }}</el-descriptions-item>
        <el-descriptions-item label="客户编码">{{ form.clientCode }}</el-descriptions-item>
        <el-descriptions-item label="客户名称">{{ form.clientName }}</el-descriptions-item>
        <el-descriptions-item label="单据状态">
          <dict-tag :options="dict.type.order_type_status" :value="form.status"/>
        </el-descriptions-item>
        <el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item>
        <el-descriptions-item label="附件">
          <div v-if="form.url && form.url.split(',').length > 0">
            <a
              v-for="(file, index) in form.url.split(',')"
              :key="index"
              :href="file"
              target="_blank"
              style="color: #409EFF; margin-right: 10px; display: inline-block;"
            >
              附件{{ index + 1 }}
            </a>
          </div>
          <div v-else>无附件</div>
        </el-descriptions-item>
        <!-- 展示 deliveryDetails 中的内容 -->
      </el-descriptions>
      <el-divider content-position="center">发货通知单详情</el-divider>
      <el-table :data="form.deliveryDetails" border>
        <el-table-column label="所属订单" align="center" prop="attr1" />
        <el-table-column label="产品编码" align="center" prop="itemCode" />
        <el-table-column label="产品名称" align="center" prop="itemName" />
        <el-table-column label="规格" align="center"  prop="specification" :show-overflow-tooltip="true"/>
        <el-table-column label="单位" align="center"prop="unitOfMeasure" />
        <el-table-column
          v-for="col in columnsConfig"
          :key="col.prop"
          :label="col.label"
          :prop="col.prop"
          :width="col.width"
          :align="col.align"
          v-if="col.show">
        </el-table-column>
        <el-table-column label="本次发货数量" align="center" prop="quantity" />
        <el-table-column label="单价" align="center" prop="unitPrice">
          <template slot-scope="scope">
            <el-tag type="success" v-if="scope.row.unitPrice">{{ scope.row.unitPrice }}</el-tag>
            <span v-else>{{ scope.row.unitPrice }}</span>
          </template>
        </el-table-column>
        <el-table-column label="是否质检" align="center" prop="oqcCheck">
          <template slot-scope="scope">
            <el-tag v-if="scope.row.oqcCheck === 'Y'"> 是 </el-tag>
            <el-tag v-else type="danger"> 否 </el-tag>
          </template>
        </el-table-column>
      </el-table>
      <div slot="footer" class="dialog-footer">
        <el-button
          type="primary"
          @click="confirm"
          v-if="form.status === 'caogao' && isConfirm">确认</el-button>
        <el-button @click="cancelView">取 消</el-button>
      </div>
    </el-dialog>
  </div>
</template>

<script>
import {addSalseDeliver, delSalseDeliver, getSalseDeliver, listSalseDeliver , execute} from "@/api/mes/xs/deliver"
import Productsalseline from "./line.vue"
import OqcSelectSingle from "@/components/oqcSelect/single.vue"
import MultiOrderSelect from "@/components/orderSelect/multi.vue"
import {genCode} from "@/api/system/autocode/rule"
import {getColumnsConfigKey} from "@/api/system/columnsconfig";
export default {
  name: "Productsalse",
  dicts: ['order_type_status'],
  components: {OqcSelectSingle, Productsalseline, MultiOrderSelect},
  data() {
    return {
      //自动生成编码
      autoGenFlag:false,
      optType: undefined,
      warehouseInfo:[],
      warehouseOptions:[],
      warehouseProps:{
        multiple: false,
        value: 'pId',
        label: 'pName',
      },
      // 遮罩层
      loading: true,
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 显示搜索条件
      showSearch: true,
      // 总条数
      total: 0,
      // 销售出库单表格数据
      productsalseList: [],
      // 弹出层标题
      title: "",
      titleView: "",
      // 是否显示弹出层
      open: false,
      openView: false,
      columnsConfig:[],
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        deliverCode: null,
        salseName: null,
        oqcId: null,
        oqcCode: null,
        soCode: null,
        clientId: null,
        clientCode: null,
        clientName: null,
        clientNick: null,
        warehouseId: null,
        warehouseCode: null,
        warehouseName: null,
        locationId: null,
        locationCode: null,
        locationName: null,
        areaId: null,
        areaCode: null,
        areaName: null,
        salseDate: null,
        status: null,
        params: [],
      },
      // 表单参数
      form: {},
      // 订单查询数据
      orderQuery: '已审批',
      isConfirm: false,
      // 表单校验
      rules: {
        deliverCode: [
          { required: true, message: "发货通知单编号不能为空", trigger: "blur" }
        ],
        soCode: [
          { required: true, message: "销售单编号不能为空", trigger: "blur" }
        ],
        salseDate: [
          { required: true, message: "请选择出库日期", trigger: "change" }
        ]
      },
      // 上传文件类型
      fileType: [
        // 文档类
        "pdf", "doc", "docx", "xls", "xlsx",
        // 图片类
        "jpg", "jpeg", "png", "gif", "bmp",
        // 视频类
        "mp4", "avi", "rmvb", "mkv", "mov"
      ],
      // 上传文件列表
      fileList: [],
    };
  },
  created() {
    this.getList();
    this.getItemBase();
  },
  // watch: {
  //   'form.productLineList': {
  //     handler(newVal, oldVal) {
  //       if (JSON.stringify(newVal) !== JSON.stringify(oldVal)) {
  //         this.form.deliveryDetails = [];
  //       }
  //     },
  //     deep: true // 深度监听数组内部的变化
  //   }
  // },
  methods: {
    /** 查询销售出库单列表 */
    getList() {
      this.loading = true;
      const query = { ...this.queryParams };
      if (query.params && query.params.length === 2) {
        query.params = {
          beginTime: query.params[0],
          endTime: query.params[1]
        };
      } else {
        query.params = null;
      }
      listSalseDeliver(query).then(response => {
        this.productsalseList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    getItemBase(){
      getColumnsConfigKey('MdItem_Base').then(res=>{
        this.columnsConfig = JSON.parse(res.data);
      })
    },
    // 取消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    cancelView(){
      this.openView = false;
      this.reset();
    },
    // 表单重置
    reset() {
      this.form = {
        salseId: null,
        deliverCode: null,
        salseName: null,
        oqcId: null,
        oqcCode: null,
        soCode: null,
        clientId: null,
        clientCode: null,
        clientName: null,
        clientNick: null,
        warehouseId: null,
        warehouseCode: null,
        warehouseName: null,
        locationId: null,
        locationCode: null,
        locationName: null,
        areaId: null,
        areaCode: null,
        areaName: null,
        salseDate: new Date(),
        status: "caogao",
        remark: null,
        attr1: null,
        attr2: null,
        attr3: null,
        createBy: null,
        createTime: null,
        updateBy: null,
        updateTime: null,
        productLineList: [],
        orderLineList: [],
        deliveryDetails: [],
      };
      this.autoGenFlag = false;
      this.isConfirm = false;
      this.fileList = [];
      this.resetForm("form");
    },
    selectRow(row) {
      const exists = this.form.deliveryDetails.some(detail => detail.lineId === row.lineId);
      if (!exists) {
        this.form.deliveryDetails.push({
          ...row,
          deliveredQuantity: 0,
          oqcCheck: 'N'
        });
      } else {
        this.$message.warning('该数据已经选择过，不允许重复选择');
      }
    },
    deleteRow(index, row) {
      // 从 deliveryDetails 中移除该条数据
      this.form.deliveryDetails.splice(index, 1);
      this.$message.success('删除成功');
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.ids = selection.map(item => item.salseId)
      this.single = selection.length!==1
      this.multiple = !selection.length
    },
    // 查询明细按钮操作
    handleView(row){
      this.reset();
      const deliverId = row.deliverId
      getSalseDeliver(deliverId).then(response => {
        this.form = response.data;
        response.data.url === null ? this.fileList = [] : this.fileList = response.data.url.split(',');
        this.openView = true;
        this.titleView = "查看发货通知单信息";
        this.optType = "view";
      });
    },
    handleOqcChange(val, itemCode) {
      this.form.deliveryDetails.forEach((item, index) => {
        if (item.itemCode === itemCode) {
          this.$set(this.form.deliveryDetails[index], 'oqcCheck', val)
        }
      })
    },
    /** 新增按钮操作 */
    handleAdd() {
      this.reset();
      genCode('DELIVER_CODE').then(response =>{
        this.form.deliverCode = response;
      });
      this.open = true;
      this.title = "添加发货通知单";
      this.optType = "add";
      this.$nextTick(()=>{
        this.$refs.orderSelect.getList();
      })
    },
    /** 提交按钮 */
    submitForm() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          addSalseDeliver(this.form).then(response => {
            this.$modal.msgSuccess("新增成功");
            this.open = false;
            this.getList();
          });
        }
      });
    },
    /** 删除按钮操作 */
    handleDelete(row) {
      const deliverIds = row.deliverId || this.ids;
      this.$modal.confirm('是否确认永久删除编号为 "' + row.deliverCode + '" 的发货通知单？ 删除后将不可找回！')
        .then(function() {
          return delSalseDeliver(deliverIds);
        }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    //执行出库
    handleExecute(row){
      this.reset();
      const deliverId = row.deliverId;
      getSalseDeliver(deliverId).then(response => {
        this.form = response.data;
        this.openView = true;
        this.titleView = "确认发货通知单信息";
        this.optType = "view";
        this.isConfirm = true;
      });
    },
    // 提交出库
    confirm() {
      const deliverId = this.form.deliverId;
      this.$modal.confirm('是否确认执行编号为”' + this.form.deliverCode + '”的发货通知单？')
        .then(function() {
          return execute(deliverId)//执行入库
        }).then(() => {
        this.openView = false;
        this.getList();
        this.$modal.msgSuccess("确认成功");
      }).catch(() => {});
    },
    //OQC检验单选择
    handleSelectOqc(){
      this.$refs.oqcSelect.showFlag = true;
    },
    //OQC检验单选择弹出框
    onOqcSelected(obj){
      if(obj != undefined && obj != null){
        this.form.oqcId = obj.oqcId;
        this.form.oqcCode = obj.oqcCode;
        this.form.clientId = obj.clientId;
        this.form.clientCode = obj.clientCode;
        this.form.clientName = obj.clientName;
        this.form.clientNick = obj.clientNick;
      }
    },
    handleSelectOrder(){
      this.$refs.orderSelect.showFlag = true;
    },
    //销售订单选择弹出框
    onOrderSelected(obj) {
      if (Array.isArray(obj) && obj.length > 0) {
        // 初始化 form 数据
        this.form.soCode = '';
        this.form.clientId = '';
        this.form.clientCode = '';
        this.form.clientName = '';
        this.form.productLineList = [];
        this.form.deliveryDetails = [];

        // 遍历数组中的每个订单
        obj.forEach((order, index) => {
          if (index === 0) {
            // 只取第一个订单的信息
            this.form.clientId = order.clientId;
            this.form.clientCode = order.clientCode;
            this.form.clientName = order.clientName;
          }
          // 合并 soNumber
          if (this.form.soCode) {
            this.form.soCode += ',' + order.soNumber;
          } else {
            this.form.soCode = order.soNumber;
          }
          /*// 合并 productLineList
          this.form.productLineList = this.form.productLineList.concat(order.xsOrderLineList);*/
          // 合并 productLineList 并根据 itemCode + price 判断是否合并数量
          if (Array.isArray(order.xsOrderLineList)) {
            order.xsOrderLineList.forEach(line => {
              const existing = this.form.productLineList.find(
                item => item.itemCode === line.itemCode && item.unitPrice === line.unitPrice
              );

              if (existing) {
                // 单价相同  合并数量
                existing.quantity = (parseFloat(existing.quantity) + parseFloat(line.quantity)) || 0;
                existing.deliverNum = (parseFloat(existing.deliverNum) + parseFloat(line.deliverNum)) || 0;
              } else {
                // 单价不同或不存在  新增一条记录
                this.form.productLineList.push({...line});
              }
            });
          }
        });
      }
    },
    //自动生成编码
    handleAutoGenChange(autoGenFlag){
      if(autoGenFlag){
        genCode('DELIVER_CODE').then(response =>{
          this.form.deliverCode = response;
        });
      }else{
        this.form.deliverCode = null;
      }
    },
    // 上传成功回调
    handleUploaded(data) {
      this.form.url = data;
    },
    // 删除成功回调
    handleRemoved(data) {
      this.form.url = data;
    },
  }
};
</script>
